The present invention relates to a system and method for detecting and intercepting computer data transmissions containing hostile data, such as a virus. In particular, the present invention relates to such a system and method having a provision for enforcing a key escrow policy for storage of decryption keys, so that hostile data can be detected within encrypted data transmissions.
Computer users and network administrators face a security dilemma in exchanging data between a computer or local network and an external network, such as the Internet. On the one hand, it is desirable to provide access to an external network, to permit e-mail, file transfers, and other forms of data transmission. On the other hand, completely unfettered access to an external network raises the possibility that hostile data may be received or sent to the external network. In this context, the term xe2x80x9chostile dataxe2x80x9d refers to any data that is undesired to be received from or sent to the external network. Such data may include virus-bearing data files or executables, which could damage a local user""s computer or infect a local network. Hostile data can also include sensitive or proprietary information that is undesired to be sent from the user""s computer or local network into an external network.
Virus detection is one form of hostile data interception that is of particular concern. In a known arrangement for protecting a local network from penetration by virus-bearing data, a proxy server is configured to mediate data exchanges between computers in the local network and the external network. At the proxy server, incoming transmissions of files or email from the external network are tested for the presence of viruses therein. If a virus is detected, the proxy server can be arranged to prevent transmission of the virus-bearing transmission to a destination within the local network. In some instances, incoming data transmissions may be encoded in a format requiring decoding prior to virus detection. Binary files, such as executables or images, may be compressed and/or encoded in formats such as UUENCODE, BINHEX, MIME, and SMIME, requiring the proxy server to de-compress or otherwise xe2x80x9cunwrapxe2x80x9d the encoded data prior to virus detection.
A significant vulnerability of the known network protection arrangement described above is that it is unable to detect the presence of hostile data within an encrypted data transmission. As used herein, an xe2x80x9cencryptedxe2x80x9d data transmission differs from an xe2x80x9cencodedxe2x80x9d data transmission in that extracting the original data from an xe2x80x9cencryptedxe2x80x9d data transmission requires external variable data in addition to a predetermined decryption algorithm, whereas, knowledge of a predetermined decoding algorithm alone is sufficient for extracting an xe2x80x9cencodedxe2x80x9d data transmission. Dual-key, or so-called xe2x80x9cpublic-keyxe2x80x9d encryption is one such encryption method for providing secure or private data transmission. Dual or public key encryption systems are also referred to as asymmetric encryption, while single key encryption algorithms such as DES are known as symmetric encryption. In a dual-key encryption system, a user generates two bit sequences, or keysxe2x80x94a public key and a private key. The user publishes or otherwise makes the public key available to any entity from which the user desires to receive encrypted data, and the user retains the private key. The mathematical relationship between the two keys is sufficiently complex that the identity of the private key is not easily determined on the basis of knowledge of the public key, without consuming substantial computational resources. The public key can be used as a seed value in an algorithm for encrypting original data in such a manner that the encrypted data can be readily decrypted only if the private key is known. Upon receiving a data transmission that has been encrypted with the public key, the user provides the private key to a decryption algorithm for obtaining the original data.
Because knowledge of the private key is required to decrypt the encrypted transmission, a proxy server arranged to detect hostile data would not be able to decrypt the transmission unless the proxy server is provided with a copy of the private key. It would therefore be desirable to provide a system and method wherein a proxy server would be provided with copies of the private encryption keys of the users of a protected network in such a manner that intervention of a network administrator would not be required to ensure compliance with a key escrow policy. For computers having a direct connection to an external network, it would also be desirable to provide for a mechanism for prompting a user to provide a copy of his or her private key to a hostile data interception mechanism arranged to prevent access to data received via the network prior to completion of hostile data detection.
In accordance with one aspect of the present invention, there is provided a system and method wherein a proxy server is connected to provide a communication path between an external network and computers within a protected local network. The proxy server is arranged to detect the presence of hostile data within a data transmission received from the external network and addressed to a destination within the protected network. The proxy server is provided with a virus detection capability, a private key storage facility, and a hostage data storage facility. When a data transmission is received from the external network, the proxy server determines whether the data transmission has been encrypted. If the data transmission is determined to include encrypted data, the proxy server is arranged to retrieve, from the private key storage facility, a copy of the private key corresponding to the intended recipient of the data transmission. If no such private key is available, the proxy server prevents the data transmission as xe2x80x9chostage dataxe2x80x9d within the hostage data storage facility. Concurrently therewith or subsequent thereto, the proxy server generates a message to be sent to the intended recipient of the data transmission, to notify the recipient that the proxy server was unable to decrypt the data transmission, and prompting the recipient to provide a copy of the requisite decryption key to the proxy server. Thus, in accordance with the present invention, data transmissions are held xe2x80x9chostagexe2x80x9d until the recipient user provides the proxy server with a key sufficient to decrypt the transmission and to proceed with the hostile data interception. This hostage-taking ability can be used equally well in asymmetric and symmetric systems.